﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Metadados;
using MySql.Data.MySqlClient;
using System.Data;


namespace Dados
{
    public class DBItemCotacao
    {
        private ConexaoMYSQL objConexao = new ConexaoMYSQL();

        public bool incluir(ItemCotacao obj)
        {
            bool blnRetorno = false;

            string strSql = "INSERT INTO ITEMCOTACAO (cotCodigo,forCpfCnpj,proCodigo,itcQuantidade,itcPreco,itcVencedor,triCodigo)" +
                         " VALUES (@p_cotCodigo,@p_forCpfCnpj,@p_proCodigo,@_itcQuantidade,@p_itcPreco,@p_itcVencedor,@p_triCodigo)";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", obj.cotCodigo));
            objParams.Add(new MySqlParameter("@p_forCpfCnpj", obj.forCpfCnpj));
            objParams.Add(new MySqlParameter("@p_proCodigo", obj.proCodigo));
            objParams.Add(new MySqlParameter("@p_itcQuantidade", obj.itcQuantidade));
            objParams.Add(new MySqlParameter("@p_itcPreco", obj.itcPreco));
            objParams.Add(new MySqlParameter("@p_itcVencedor", obj.itcVencedor));
            objParams.Add(new MySqlParameter("@p_triCodigo", obj.triCodigo));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public bool atualizar(ItemCotacao obj)
        {
            bool blnRetorno = false;

            string strSql = "UPDATE ITEMCOTACAO SET forCpfCnpj = @p_forCpfCnpj, proCodigo = @p_proCodigo, itcQuantidade = @p_itcQuantidade" +
                            ", itcPreco = @p_itcPreco, itcVencedor = @p_itcVencedor, triCodigo = @p_triCodigo" +
                            " WHERE triCodigo = @p_triCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_forCpfCnpj", obj.forCpfCnpj));
            objParams.Add(new MySqlParameter("@p_proCodigo", obj.proCodigo));
            objParams.Add(new MySqlParameter("@p_itcQuantidade", obj.itcQuantidade));
            objParams.Add(new MySqlParameter("@p_itcPreco", obj.itcPreco));
            objParams.Add(new MySqlParameter("@p_itcVencedor", obj.itcVencedor));
            objParams.Add(new MySqlParameter("@p_triCodigo", obj.triCodigo));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public bool excluir(int p_cotCodigo)
        {
            bool blnRetorno = false;

            string strSql = "DELETE FROM ITEMCOTACAO WHERE cotCodigo = @cotCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", p_cotCodigo));

            blnRetorno = objConexao.executarComando(strSql, objParams);

            return blnRetorno;
        }

        public List<ItemCotacao> consultar(int p_cotCodigo)
        {
            string strSql = "SELECT cotCodigo, fotCpfCnpj, proCodigo, itcQuantidade, itcPreco, itcVencedor, triCodigo " +
                            "FROM ITEMCOTACAO " +
                            "WHERE triCodigo = @p_triCodigo";

            List<MySqlParameter> objParams = new List<MySqlParameter>();
            objParams.Add(new MySqlParameter("@p_cotCodigo", p_cotCodigo));

            DataTable objTbItemCotacoes = objConexao.retornarTabela(strSql, objParams, "ItemCotacao");

            List<ItemCotacao> objItemCotacoes = new List<ItemCotacao>();
            foreach (DataRow row in objTbItemCotacoes.Rows)
            {
                ItemCotacao objItemCotacao = new ItemCotacao();
                objItemCotacao.cotCodigo = (int)row["cotCodigo"];
                objItemCotacao.forCpfCnpj = (string)row["forCpfCnpj"];
                objItemCotacao.proCodigo = (int)row["proCodigo"];
                objItemCotacao.itcQuantidade = (decimal)row["itcQuantidade"];
                objItemCotacao.itcPreco = (decimal)row["itcPreco"];
                objItemCotacao.itcVencedor = (int)row["itcVencedor"];
                objItemCotacao.triCodigo = (int)row["triCodigo"];

                objItemCotacoes.Add(objItemCotacao);
            }

            return objItemCotacoes;
        }

        public DataView listar(string p_itcVencedor) //CAMPO DE PESQUISA => VENCEDOR?
        {
            string strSql = "SELECT * FROM ITEMCOTACAO WHERE cotCodigo <> 0 ";

            List<MySqlParameter> objParams = new List<MySqlParameter>();

            if (p_itcVencedor.Trim() != "")
            {
                strSql += "AND itcVencedor LIKE @p_itcVencedor";
                objParams.Add(new MySqlParameter("@p_itcVencedor", "%" + p_itcVencedor + "%"));
            }

            DataTable objTbItemCotacoes = new DataTable();

            objTbItemCotacoes = objConexao.retornarTabela(strSql, objParams, "ItemCotacao");

            return objTbItemCotacoes.DefaultView;
        }
    }
}
